1. Field of the Invention
The present invention relates generally to an apparatus and method for configuring a Buffer Descriptor (BD) suitable for packet aggregation, and in particular, to a BD configuring apparatus and method for allowing easy access to Frame Descriptors (FDs) included in an Access Category (AC) descriptor by representing the indexes of the FDs in the form of a bitmap.
2. Description of the Related Art
The Lower Medium Access Control (LMAC) of a Wireless Local Area Network (WLAN) Mobile MAC is a hardwired MAC, compliant with the Institute of Electrical and Electronics Engineers (IEEE) 802.11 series of standards. The LMAC offers many benefits by implementing the WLAN MAC protocols in hardware, ensuring the flexibility of software.
Software-based implementation of the WLAN MAC protocols will require a memory for executing and storing the software. Since the memory capacity requirement is hundreds of Kbytes, it is a significant burden to a designer. In this context, the LMAC uses a BD control engine in order to manage transmitted/received (Tx/Rx) packets stored in a host memory. A BD has control information and status information of each Tx/Rx frame. For continuous transmission/reception of a plurality of frames, a linked list is made using the BD.
The IEEE 802.1 in standard offers five features to increase MAC efficiency including high throughput and improvement of whole system performance: frame aggregation, power management, bi-directional data flow, channel management and feedback mechanism, and rate adaptation. Among the five features, frame aggregation is significant to high throughput. Because separate transmission of individual frames increases transmission time and results in resource dissipation due to overhead arising from each frame, frames under the same condition are aggregated and transmitted in an aggregated Physical Service Data Unit (PSDU), thereby reducing overhead. However, the conventional IEEE 802.11-based LMAC does not have a BD structure for frame aggregation. Therefore, for packet aggregation in the conventional technology, a BD must be configured for each AC and a new BD must be created for packet aggregation.
FIG. 1 illustrates a BD structure for packet aggregation using ACs in compliance with IEEE 802.11e. Referring to FIG. 1, a memory area in which a BD list 100 is separated from a data buffer 102 is provided for each of ACs 104, 106, 108 and 110 according to the IEEE 802.11e standard. The ACs define a new mechanism for a MAC layer to support Quality of Service (QoS) in the WLAN. Since traffic with a higher priority has an advantage over traffic with a lower priority in terms of medium access, a Mobile Station (MS) classifies traffic into four types, for example, the ACs 104 to 110 (AC0 to AC3) to prioritize the traffic.
The BD list 100 organized on an AC-by-AC basis contains FDs, including the pointer addresses and control and status information of packets buffered in the data buffer 102. A BD list for each AC manages a corresponding data buffer area. Specifically, a BD list 104 for AC0 manages a data buffer 105, a BD list 106 for AC1 manages a data buffer 107, a BD list 108 for AC2 manages a data buffer 109, and a BD list 110 for AC3 manages a data buffer 111. The data buffer 102 is a memory for buffering Tx/Rx packets.
FIGS. 2A and 2B illustrate the structures of conventional Tx FD and Rx FD, respectively. Referring to FIG. 2A, the Tx FD is comprised of an Owner 201, a Data Length 203, a Header Length 205, a Buffer Pointer 207, a Control Information 209, and a Status Information 211.
The Owner 201 indicates the operation status of a user that uses a memory area controlled by the FD. It tells whether the user writes or reads data into or from the memory area. The Data Length 203 indicates the length of Tx packet data, and the Header Length 205 indicates the length of the header of the Tx packet. The Buffer Pointer 207 provides the pointer information of the memory area allocated to the packet, that is, the address of the packet in the data buffer 102. The Control Information 209 provides the data rate and protocol information of the packet and the Status Information 211 indicates the transmission result of the packet.
Referring to FIG. 2B, the Rx FD is comprised of an Owner 221, a Packet Length 223, a Buffer Pointer 225, and a Status Information 227.
The Owner 221 indicates the operation status of the user that uses a memory area controlled by the FD. It indicates whether the user writes or reads data into or from the memory area. The Packet Length 223 indicates the length of an Rx packet, and the Buffer Pointer 225 provides the pointer information of the memory area where the packet is stored, that is, the address of the packet in the data buffer 102. The Status Information 227 indicates the reception result of the packet.
In the logical buffer structure illustrated in FIG. 1, the BD list is searched by condition based on the Tx and Rx FD structures illustrated in FIGS. 2A and 2B to aggregate MAC Protocol Data Units (MPDUs). An MPDU is one packet to be transmitted.
FIG. 3A illustrates conventional aggregation of FDs by Traffic IDentifier (TID). Referring to FIG. 3A, it is shown that packets with the same TID, for example, a TID of 2 are aggregated from the FDs of AC0. FDs 301 with a TID of 2 are aggregated from AC0 by completely searching AC0 in step 303. Packets linked to the aggregated FDs are constructed to a single aggregation PSDU and transmitted to a destination.
A Block ACKnowledgement (ACK) Request (BAR) for the transmitted packets is transmitted to the destination and a Block ACK (BA) is received from the destination in step 305. The BA is a signal that verifies successful transmission of the aggregated packets to the destination. Upon receipt of the BAR for the packets, the destination replies with the BA.
FIG. 3B illustrates conventional aggregation of FDs by AC. Referring to FIG. 3B, it is shown that packets are aggregated from the same AC, for example, AC0 in the BD list. Packets included in AC0 are aggregated by completely searching AC0 and transmitted to a destination in step 307. BARs for the transmitted packets are transmitted to the destination and BAs are received from the destination in step 309. Since a BA has a different sequence for a different TID, BAs are received according to the TIDs of the packets. Therefore, once the BAs are received, the TIDs of the packets are checked in the BD list and the BAs are received according to the TIDs.
FIG. 3C illustrates conventional aggregation of FDs by destination.
Referring to FIG. 3C, it is shown that packets having the same destination (for example, “Dest: 2”) are aggregated from the BD list. Packets with the same destination are aggregated by completely searching the BD list and transmitted to a destination in step 311. BARs for the transmitted packets are transmitted to the destination and BAs are received from the destination in step 313. Since a BA has a different sequence for a different TID, BAs are received according to the TIDs of the packets. Therefore, once the BAs are received, the TIDs of the packets are checked in the BD list and the BAs are received according to the TIDs.
As described above, since the conventional IEEE 802.11-based LMAC does not have a BD structure for frame aggregation, it supports BDs using ACs. In aggregating packets by condition (e.g. by TID, by AC, or by destination), an aggregation descriptor searches the entire BD list rather than searching a particular part of the BD list, increasing search overhead. In addition, due to transmission/reception of the BARs/BAs by TIDs, the whole BD list is searched every time a BA is requested or received.